#pragma once
#ifndef IMODELFILELOADER_H
#define IMODELFILELOADER_H

#include "ModelFormation.h"

class IModelFileLoader
{
public:
    virtual ~IModelFileLoader() = default;

    virtual bool load(const QString& filePath) = 0;
    virtual bool isLoaded() const = 0;
    virtual QString lastError() const = 0;
    virtual QString getFullTexturePath(const QString &texturePath) const = 0;

    virtual QVector<Triangle> getTriangles() const = 0;
    virtual QVector<Edge> getEdges() const = 0;
    virtual QVector<QVector<Vertex>> getVertices() const = 0;
    virtual QVector<QVector<unsigned int>> getVerticesIndices() const = 0;

    virtual QVector<Material> getMaterials() const = 0;
    virtual QVector<Light> getLights() const = 0;

    virtual QVector3D getMinBounds() const = 0;
    virtual QVector3D getMaxBounds() const = 0;

    virtual bool hasTexture() const = 0;
};

#endif // IMODELFILELOADER_H
